草庐IT

JavaBeans 替代品?

全部标签

c# - 嵌套接口(interface)的替代方案(在 C# 中不可能)

在这种情况下,我主要将接口(interface)用作对象的不可变实例的句柄。问题是C#中的嵌套接口(interface)是不允许的。这是代码:publicinterfaceICountry{ICountryInfoInfo{get;}//Nestedinterfaceresultsinerrormessage://Error13'ICountryInfo':interfacescannotdeclaretypespublicinterfaceICountryInfo{intPopulation{get;}stringNote{get;}}}publicclassCountry:ICou

c# - 替代嵌套类型的类型 Expression<Func<T>>

我在调用服务时使用了一个函数。在调用服务之前,它会创建一个日志条目:protectedTResultCallService(TServiceservice,Expression>functionSelector){Logger.LogServiceCall(service,functionSelector);returnfunctionSelector.Compile()(service);}VisualStudio2010代码分析器通知我不应在以下消息中使用嵌套类型:CA1006:Microsoft.Design:Consideradesignwhere'ServiceManager

c# - svcutil.exe 是 xsd.exe 的替代品吗?

我正在使用xsd.exe从.xsd文件生成一些C#类。我遇到了此处和其他站点所涵盖的相同问题,其中xsd.exe生成Type[]数组而不是.xsd文件中类型的通用列表集合。有人建议,如果将/dataContractOnly参数传递给svcutil.exe,则可以使用svcutil.exe替代xsd.exe。但是,这些人似乎错了,因为svcutil.exe实际上生成了System.Xml.XmlNode[]数组属性,而不是根据.xsd文件中的架构创建类型。例如,给定这个简单的.xsd架构:'xsd.exe/classesExample.xsd'生成:publicpartialclassE

C#:替代 GenericType == null

我需要检查一个通用对象是否为null或default(T)。但是我有一个问题......目前我是这样做的:if(typeof(T).IsValueType){if(default(T).Equals(thing))//Dosomethingelse//Dosomethingelse}else{if(thing==null)//Dosomethingelse//Dosomethingelse}但后来我又重复了一遍……我不喜欢这样。问题如下:thing==null;此处ReSharper警告Possiblecompareofvaluetypewith'null'。thing==defaul

c# - 在 System.Web 中为 Owin 使用 HttpContext 的替代方法

ASP.NET身份验证现在基于OWIN中间件,可以在任何基于OWIN的主机上使用。ASP.NETIdentity对System.Web没有任何依赖性。我有一个AuthorizeAttribute过滤器,我需要在其中获取当前用户并添加一些属性以便稍后由操作Controller检索。问题是我必须使用属于System.Web的HttpContext。Owin有HttpContext的替代方案吗?publicclassWebApiAuthorizeAttribute:AuthorizeAttribute{publicoverrideasyncTaskOnAuthorizationAsync(H

c# - 我需要一个永远不会返回 null 的 `Assembly.GetEntryAssembly()` 的替代方案

我需要找到开始执行托管代码的程序集。//usingSystem.Reflection;AssemblyentryAssembly=Assembly.GetEntryAssembly();这似乎是要走的路,但是MSDNreferencepageforAssembly.GetEntryAssembly声明此方法[c]从非托管代码调用时返回null。”在那种情况下,我想知道非托管代码调用了哪个程序集。有没有一种可靠的方法可以做到这一点,即总是返回一个非空的Assembly引用? 最佳答案 到目前为止我能想到的最好的是以下,它应该在单线程场

c# - XML 序列化的替代

我有使用XmlSerializer序列化/反序列化数据结构以实现持久性的代码。我在StackOverflow的几个地方读到和听说XmlSerializer是以下一项或多项:不好支持/实现不佳future可能不会得到支持我的问题有两个方面;以上是否属实,如果属实,存在哪些替代方案?就我的目的而言,XML工作得很好,我想保持这一点不变,但其他一切都可以改变。编辑:如果您想对XML提出其他建议,我愿意接受,但它确实需要是人类可读的。 最佳答案 XmlSerializer得到完美支持,但有一些小问题;相对慢;但通常这仍然足够快只支持公共(p

c# - 优化 DateTime.Now 的替代方案

我和一位同事在这个问题上反复讨论,我希望就我提出的解决方案是否是个好主意获得一些外部意见。首先,免责声明:我意识到“优化DateTime.Now”的概念对你们中的一些人来说听起来很疯狂。我有一些先发制人的防御措施:我有时怀疑那些总是说“计算机速度很快;可读性总是先于优化”的人通常是根据开发性能的应用程序的经验说的,尽管性能可能很重要,不是关键。我说的是需要事情尽可能接近瞬时发生——比如,在纳秒内(在某些行业中,这确实很重要——例如,实时高频交易)。即使考虑到这一点,我在下面描述的替代方法实际上也非常可读。这不是一个奇怪的hack,只是一个可靠且快速的简单方法。我们运行测试。DateTi

C# : So if a static class is bad practice for storing global state info, 提供相同便利的好的替代方案是什么?

我一直注意到静态类在用于存储全局信息方面在SO上得到了很多不好的评价。(并且全局变量通常受到蔑视)我只想知道下面的示例有什么好的选择......我正在开发一个WPF应用程序,从我的数据库中检索到的数据的许多View都是根据当前登录用户的ID过滤的。同样,我的应用程序中的某些点应该只供被视为“管理员”的用户访问。我目前正在静态类中存储一个loggedInUserId和一个isAdminbool值。我的应用程序的各个部分都需要此信息,我想知道为什么它在这种情况下并不理想,以及替代方案是什么。启动和运行似乎非常方便。我唯一能想到的替代方法是使用IoC容器将Singleton实例注入(inje

c# - 暂停和恢复线程的替代方法有哪些?

自.NET2.0以来,Thread.Suspend()和Thread.Resume()这两个方法已过时。为什么?还有哪些其他选择和示例? 最佳答案 您需要使用AutoResetEventEventWaitHandle。假设你想做这样的事情(注意:不要这样做!):privateThreadmyThread;privatevoidWorkerThread(){myThread=Thread.CurrentThread;while(true){myThread.Suspend();//Dowork.}}publicvoidStartWor